Enumerated linear programming for optimal strategies

ABSTRACT

One embodiment is directed to an approach to solving a leader-follower problem in which a leader has a set of leader actions and a follower has a set of follower actions. The approach includes receiving an expression of the leader-follower problem as a normal form Stackelberg game. The approach further includes, for each possible follower action, solving a linear program (LP) problem to determine a respective optimal mixed leader strategy, wherein the LP problem optimizes a leader payoff for a given mixed leader strategy and a given fixed follower action over a feasible region that includes only mixed leader strategies that provoke that respective follower action. The approach further includes generating an output derived from the optimal mixed leader strategies, and outputting the output by changing a physical state associated with an interface.

BACKGROUND

One class of problem involving multiple-adversarial agents (such as security problems) can be formulated as a defender-attacker game in which a first intelligent agent (also referred to here as the “defender”) will use limited defensive resources to protect against an attack by a second intelligent adversary (also referred to here as the “attacker”) that uses limited offensive resources.

The game theoretic features of such a game are that the attacker gets to observe the defender's mixed strategy over a period of observation before committing to an attack. The attacker chooses a means of attack without knowing the defender's strategy for the day of the attack. The rewards are not zero-sum or symmetric. For example, a convoy protection problem can be formulated as a defender-attacker game in which the defender varies its choice of possible routes and the attacker chooses an ambush site based on its observations of the routes chosen by the defender.

Such defender-attacker games are often modeled as Stackelberg games. The Decomposed Optimal Bayesian Stackelberg Solver (DOBSS) is described in Paruchuri, P., J. Pearce, and S. Kraus, “Playing Games for Security: An Efficient Exact Algorithm for Solving Bayesian Stackelberg Games”, Proc. of 7tha Int. Conf. on Autonomous Agents and Multiagent Systems (AAMAS 2008), ed. by Berger, Burg, and Nishiyama, May 12-16, Estoril, Portugal, 2008, which is referred to here as the “Paruchuri Article” and which is hereby incorporated herein by reference. In the DOBSS approach, a mixed-integer linear program (MILP) is formulated for a defender-attacker game for which the various attacks and defenses can be enumerated. The MILP problem is solved to find optimal mixed strategies for the defender-attacker game.

For example, Table 1 shows a normal form Stackelberg game for a simple leader-follower problem in which the leader comprises a defender and the follower comprises an attacker.

TABLE 1 Simple Normal Form Game C D A 2, 1 4, 0 B 1, 0 3, 2

Where:

-   -   i ∈ I Defender's strategy     -   j ∈ J Attacker's strategy     -   R_(ij) Reward to defender under defense i and attack j     -   c_(ij) Reward to attacker under defense i and attack j     -   x_(i) ∈ [0,1] Fraction of occasions that defender will choose i     -   q_(j) ∈ 0,1 q_(j)=1 if chosen attack is j, else q_(j)=0

In this example, the defender chooses a “mixed” defender strategy. As used herein, a “strategy” refers to a set of “actions” taken by a particular agent. For example, a mixed leader strategy refers to a set of actions taken by the leader, where the various leader actions need not all be the same. More formally, the mixed strategy is expressed as 0≦x_(i)<1.

The defender tries to maximize its strategy, knowing that the attacker will choose its best attack against whatever mixed defense the defender picks. This can be formularized in Equation (1).

$\begin{matrix} {{\max_{x}{\sum\limits_{i}{\sum\limits_{j}{R_{ij}x_{i}q_{j}}}}}{{s.t.\mspace{14mu} q} = {{argmax}_{q}{\sum\limits_{i}{\sum\limits_{j}{c_{ij}x_{i}q_{j}}}}}}{{\sum\limits_{i}x_{i}} = 1}{{\sum\limits_{j}q_{j}} = 1}{\forall{{i\; 0} \leq x_{i} \leq 1}}{\forall{{j\; q_{j}} \in \left\{ {0,1} \right\}}}} & (1) \end{matrix}$

Using the approach described in the Paruchuri Article, it is possible to convert Equation (1) into a Mixed Integer Quadratic Program (MIQP) as shown in Equation (2) by taking advantage of standard optimality conditions for the inner optimization problem.

$\begin{matrix} {{\max_{x,q,a}{\sum\limits_{i}{\sum\limits_{j}{R_{ij}x_{i}q_{j}}}}}{s.t.\mspace{14mu} {\forall{{j\; 0} \leq \left( {a - {\sum\limits_{i}{c_{ij}x_{i}}}} \right) \leq {\left( {1 - q} \right)M}}}}{{\sum\limits_{i}x_{i}} = {{1{\sum\limits_{j}q_{j}}} = 1}}{\forall{{i\; 0} \leq x_{i} \leq 1}}{\forall{{j\; q_{j}} \in \left\{ {0,1} \right\}}}{0 \leq a \leq M}} & (2) \end{matrix}$

where M is a large constant such that:

$\begin{matrix} {M\operatorname{>>}{\max\limits_{j}{\sum\limits_{i}c_{ij}}}} & (3) \end{matrix}$

A dual objective a of the inner problem can be defined for Equation (2), which means that for a solution x,q,a we will have a=max_(j) Σ_(i) c_(ij)x_(i).

Using the approach described in the Paruchuri Article, the problem defined in Table 1 can be expressed using Equation (2) to get the system of equations as follows (where M=3 to satisfy Equation (3)).

$\begin{matrix} {{{\max_{x_{1},x_{2},q_{1},q_{2},a}\mspace{14mu} {2x_{1}q_{1}}} + {4\; x_{1}q_{2}} + {x_{2}q_{1}} + {3x_{2}q_{2}}}{{s.t.\mspace{14mu} 0} \leq {a - x_{1}} \leq {3\left( {1 - q_{1}} \right)}}{0 \leq {a - {2\; x_{2}}} \leq {3\left( {1 - q_{2}} \right)}}{{x_{1} + x_{2}} = 1}{{q_{1} + q_{2}} = 1}{{0 \leq x_{1}},{x_{2} \leq 1}}{q_{1},{q_{2} \in \left\{ {0,1} \right\}}}{0 \leq a \leq 3}} & (4) \end{matrix}$

The optimal solution to Equation (4) is x₁=2/3; x₂=1/3; q₁=0; q₂=1; a=2/3. The strategy results in a payoff to the attacker of 2/3 and a payoff to the defender of 11/3.

The next stage in the approach described in the Paruchuri Article is to linearize the MIQP of Equation (2). This is done by defining the variables {z_(ij)} where:

$\begin{matrix} {z_{ij} = {x_{i}q_{j}}} & (5) \\ {x_{i} = {\sum\limits_{j}z_{ij}}} & (6) \end{matrix}$

The resulting Mixed Integer Linear Program is as follows:

$\begin{matrix} {{\max_{z,q,a}\mspace{14mu} {\sum\limits_{i}{\sum\limits_{j}{R_{ij}z_{ij}}}}}{s.t.\mspace{14mu} {\forall{{j\; 0} \leq \left( {a - {\sum\limits_{i}{c_{ij}\left( {\sum\limits_{h}z_{ih}} \right)}}} \right) \leq {\left( {1 - q_{j}} \right)M}}}}{{\sum\limits_{i}{\sum\limits_{j}z_{ij}}} = 1}{{\sum\limits_{j}q_{j}} = 1}{\forall{{i{\sum\limits_{j}z_{ij}}} \leq 1}}{\forall{{jq}_{j} \leq {\sum\limits_{i}z_{ij}} \leq 1}}{\forall{{{ij} 0} \leq z_{ij} \leq 1}}{\forall{{jq}_{j} \in \left\{ {0,1} \right\}}}{0 \leq a \leq M}} & (7) \end{matrix}$

where M is a large constant satisfying Equation (3).

The problem defined in Table 1 can be expressed using Equation (7) to get the following system of equations (where M=3 to satisfy Equation (3)).

$\begin{matrix} {{{\max_{z_{11},z_{12},z_{21},z_{22},q_{1},q_{2},a}\mspace{14mu} {2z_{11}}} + {4z_{12}} + z_{21} + {3\; z_{22}}}{{s.t.\mspace{14mu} 0} \leq {a - z_{11} - z_{12}} \leq {3\left( {1 - q_{1}} \right)}}{0 \leq {a - {2z_{21}} - {2z_{22}}} \leq {3\left( {1 - q_{2}} \right)}}{{z_{11} + z_{12} + z_{21} + z_{22}} = 1}{{q_{1} + q_{2}} = 1}{{z_{11} + z_{12}} \leq 1}{{z_{21} + z_{22}} \leq 1}{q_{1} \leq {z_{11} + z_{12}} \leq 1}{q_{2} \leq {z_{12} + z_{22}} \leq 1}{{0 \leq z_{11}},z_{12},z_{21},{z_{22} \leq 1}}{q_{1},{q_{2} \in \left\{ {0,1} \right\}}}{0 \leq a \leq 3}} & (8) \end{matrix}$

The optimal solution to this system of Equations (8) is z₁₁=z₂₁=0, z₁₂=2/3, z₂₂=1/3, q₁=0, q₂=1, a=2/3. The strategy results in a payoff to the attacker of 2/3 and a payoff to the defender of 11/3.

However, solving the MILP problem that results from the DOBSS approach described in the Paruchuri Article can be cumbersome and computationally intensive for real-word applications.

SUMMARY

One embodiment is a method of solving a leader-follower problem in which a leader has a set of leader actions and a follower has a set of follower actions. The method includes receiving an expression of the leader-follower problem as a normal form Stackelberg game. The method further includes, for each possible follower action, solving a linear program (LP) problem to determine a respective optimal mixed leader strategy, wherein the LP problem optimizes a leader payoff for a given mixed leader strategy and a given fixed follower action over a feasible region that includes only mixed leader strategies that provoke that respective follower action. The method further includes generating an output derived from the optimal mixed leader strategies, and outputting the output by changing a physical state associated with an interface.

Another embodiment is a system for solving a leader-follower problem in which a leader has a set of leader actions and a follower has a set of follower actions. The system includes at least one programmable processor and at least one interface to receive information about the leader-follower problem. The programmable processor is configured to execute software that is operable to cause the system to receive an expression of the leader-follower problem as a normal form Stackelberg game. The software is further operable to cause the system to, for each possible follower action, solve a linear program (LP) problem to determine a respective optimal mixed leader strategy, wherein the LP problem optimizes a leader payoff for a given mixed leader strategy and a given fixed follower action over a feasible region that includes only mixed leader strategies that provoke that respective follower action. The software is further operable to cause the system to generate an output derived from the optimal mixed leader strategies, and output the output by changing a physical state associated with the interface.

Another embodiment is a program product for solving a leader-follower problem in which a leader has a set of leader actions and a follower has a set of follower actions. The program-product includes a processor-readable medium on which program instructions are embodied. The program instructions are operable, when executed by at least one programmable processor included in a device, to cause the device to receive an expression of the leader-follower problem as a normal form Stackelberg game. The program instructions are further operable, when executed by at least one programmable processor included in the device, to cause the device to, for each possible follower action, solve a linear program (LP) problem to determine a respective optimal mixed leader strategy, wherein the LP problem optimizes a leader payoff for a given mixed leader strategy and a given fixed follower action over a feasible region that includes only mixed leader strategies that provoke that respective follower action. The program instructions are further operable, when executed by at least one programmable processor included in the device, to cause the device to generate an output derived from the optimal mixed leader strategies, and output the output by changing a physical state associated with an interface.

The details of various embodiments of the claimed invention are set forth in the accompanying drawings and the description below. Other features and advantages will become apparent from the description, the drawings, and the claims.

DRAWINGS

FIG. 1 is a block diagram of one embodiment of a system that is operable to define and solve leader-follower games using the techniques described in connection with FIG. 2.

FIG. 2 is a flow diagram of one embodiment of a method of solving a leader-follower problem.

Like reference numbers and designations in the various drawings indicate like elements.

DETAILED DESCRIPTION

FIG. 1 is a block diagram of one embodiment of a system 100 that is operable to define and solve leader-follower games using the techniques described below in connection with FIG. 2. The system 100 outputs a mixed strategy for the leader (also referred to here as a “mixed leader strategy”). In the particular embodiment described, each mixed leader strategy comprises, for each of the set of leader actions, a respective fraction of occasions that the leader is to choose that respective leader action.

In the particular embodiment described here in connection with FIGS. 1 and 2, the leader-follower game comprises a defender-attacker game in which the leader comprises the defender and the follower comprises the attacker. System 100 is used to output a mixed defender strategy that indicates how limited defense resources 102 available to the defender can be deployed within a given security environment 104 to defend against attacks from the attacker.

In this particular embodiment, the limited defense resources 102 comprise a group of vehicles (for example, trucks, sea ships, or air planes) that travel together in a convoy for mutual support and defense. Each convoy takes a particular path that travels through a set of locations 106. The system 100, in such an embodiment, is used to output a suggested convoy schedule that indicates, for each possible path the convoy could take, a respective fraction of occasions that the defender is to choose that path.

Although the embodiment shown in FIG. 1 is described here as being used to output a convoy schedule, it is to be understood that in other embodiments, other types of defensive strategies are output. More generally, the systems and techniques described here can be used to develop strategies for dealing with leader-follower games that can be modeled as Stackelberg games for which the actions by the leader and the follower can be enumerated. For example, in other embodiments, strategies relating to defending critical infrastructure resources such as electric power grids, subways, or airports are output.

The system 100 is described here as being implemented as software 108 that executes on one or more computers 110 (though it is to be understood that the system 100 can be implemented using various combinations of hardware and software). In the particular embodiment shown in FIG. 1, the software 108 is executed by at least one programmable processor 112 (for example, at least one general-purpose microprocessor or central processor) included in the computer 1 10. The software 108 comprises a set of program instructions embodied on a storage medium from which at least a portion of the program instructions are read by the programmable processor 112 for execution thereby. The program instructions, when executed by the programmable processor 112, carry out at least a portion of the functionality described here as being performed by the system 100.

In such an embodiment, the processor 112 includes or is communicatively coupled to at least one data storage device 114 for storing such program instructions and/or data used during execution of the software 108. Examples of suitable data storage devices 114 include any suitable form of volatile memory (such as random-access memory and registers included within programmable processors) and/or non-volatile memory (such as nonvolatile RAM memory, magnetic disc drives, and optical disc drives). Although only a single data storage device is shown in FIG. 1, it is to be understood that multiple data storage device can be used.

One or more interfaces 116 are included in the system 100 to capture information related to the security environment 104 and/or other input used by the processor 112 (and the software 108 executed thereon). Moreover, although only a single interface 116 is shown in FIG. 1, it is to be understood that multiple interfaces (for example, different types of interfaces) can be used.

For example, one or more interfaces 116 are used to communicatively couple one or more input devices 118 to the processor 1 12. A user is able to provide input to the processor 112 (and the software 108 executing thereon) using such input devices 1 18. In the embodiment shown in FIG. 1, the input devices 118 comprise a keyboard and a pointing device (such as a mouse or a touch-pad). In some implementations of the embodiment shown in FIG. 1, the computer 110 includes one or more interfaces by which external input devices are communicatively coupled to the computer 110. In other implementations (for example, where the computer 110 comprises a portable computer), the keyboard and the pointing device are integrated into the computer 110. In some of those implementations, a keyboard and/or pointing device external to the portable computer can also be communicatively coupled to the computer 110.

Input to the processor 112 (and the software 108 executing thereon) can be supplied in other ways, for example, from a network (such as a local or wide area network), one or more data files or other data stores (such as databases), or “real time” data from sensors (or other sources of data relating to the security environment 104).

In the particular embodiment shown in FIG. 1, the software 108 comprises a front end 120 and a back end 122. The front end 120 comprises a front-end interface 124 via which a user is able to enter a payoff table (also referred to here as a “reward matrix” or “game matrix”). The payoff table specifies the leader payoff and the follower payoff for each combination of a possible leader action and a possible follower action. In the particular embodiment described here in connection with FIGS. 1 and 2, the leader actions are the possible convoy paths and the follower actions are the possible locations for attacks on a convoy. The payoff table, in such an embodiment, identifies the payoff to the defender and the payoff to the attacker for each combination of a convoy path and a location for an attack on the convoy.

In one implementation, the front-end interface 124 is implemented as a user interface (displayed on a display device 132 (described below)) via which a user can manually input such data using an input device 114. In other implementations, the front-end interface 124 is used to receive such data in other ways (for example, by receiving a file in which such data is entered).

The back end 122 comprises an enumerated linear programming (LP) module 128 to generate a set of optimal mixed leader strategies for the leader-follower problem using the method described below in connection with FIG. 2.

In the particular embodiment described here in connection with FIG. 1, each mixed leader strategy comprises, for each of the set of leader actions, a respective fraction of occasions that the leader is to choose that respective leader action. More specifically, each mixed leader strategy indicates, for each possible path for the convoy, a respective fraction of occasions that the defender is to take that path.

In the particular embodiment shown in FIG. 1, the front end 120 comprises a schedule generator 130. The schedule generator 130 generates a suggested convoy schedule from the front end's knowledge of the defense resources 102 and the security environment 104 combined with an optimal mixed leader strategy output by the back end 122. This suggested convoy schedule can be adjusted manually as necessary to produce a finalized schedule.

In one implementation of the system 100, at least a portion of the suggested convoy schedule is communicated (via an appropriate interface 116) to a display device 132 for display thereon (for example, using a web browser or other user interface mechanism). Such display device 132 may be local to the system 100 (for example, where a video monitor is coupled directly to a video port of the computer 110 used to implement the system 100) or may be remote to the system 100 (for example, where the display device 132 is a part of or connected to a client computer that remotely accesses the one or more computers 108 used to implement the system 100 over a network such as Internet using appropriate client and server software, in which case the interface 118 comprises an appropriate network interface). In another example, at least a portion of such an output may be communicated via an appropriate interface 116 to an interface 134 associated with the defense resources 102 in order to cause a defense-related action to be taken (for example, communicating a command to a system or device within the defense resources 102 over a network or other communication link that causes the system or device to take some action based on the command). More generally, it should be understood that the output generated by the system 100 is used to (among other things) change the state of the interface 116 (for example, changing the state of the various signals that make up the interface) and any device or interface communicatively coupled thereto (such as display device 132 and interface 134).

FIG. 2 is a flow diagram of one embodiment of a method 200 of solving a leader-follower problem. Method 200 is based on a new and novel approach to solving such problems which is provably polynomial in the size of the normal form Stackelberg game. This approach is based on the following. The convex set of all legitimate mixed defensive strategies is defined as:

$\begin{matrix} {X = \left\{ {{{x\text{:}\mspace{14mu} {\sum\limits_{i}x_{i}}} = 1},{\forall{{i\; 0} \leq x_{i}}}} \right\}} & (9) \end{matrix}$

The inner optimization problem in Equation (1) can then be pulled out to define the optimal attack function, which computes the best attack given a mixed defender strategy:

$\begin{matrix} {{q(x)} = {{argmax}_{q}\left\{ {{{\sum\limits_{i}{\sum\limits_{j}{c_{ij}x_{i}q_{j}\text{:}\mspace{14mu} {\sum\limits_{j}q_{j}}}}} = 1},{\forall{{j\; 0} \leq q_{j}}}} \right\}}} & (10) \end{matrix}$

It can be shown that for x ∈ X, an optimal q(x) that will be one for some ĵ and zero for all other j. Thus, the following can be defined:

$\begin{matrix} {{\hat{q}(x)} = {\arg \; {\max_{j}\left\{ {\sum\limits_{i}{c_{ij}x_{i}}}\; \right\}}}} & (11) \end{matrix}$

And, without loss of generality, Equation (10) can be redefined as:

$\begin{matrix} {{q(x)}_{j} = \left\{ \begin{matrix} 0 & {{{if}\mspace{14mu} j} \neq {\hat{q}(x)}} \\ 1 & {{{if}\mspace{14mu} j} = {\hat{q}(x)}} \end{matrix} \right.} & (12) \end{matrix}$

Also, X is then decomposed into those subregions that result in a particular attack response:

X _(j) ={x∈ X: {circumflex over (q)}(x)=j}  (13)

Note that by definition of Equation (11), each X_(j) must be a linear polytope defined by:

$\begin{matrix} {X_{j} = \left\{ {x \in {X\text{:}\mspace{14mu} {\forall{{\hat{j}{\sum\limits_{i}{c_{\hat{ij}}x_{i}}}} \leq {\sum\limits_{i}{c_{ij}x_{i}}}}}}} \right\}} & (14) \end{matrix}$

Therefore, the problem expressed in Equation (1) can be re-expressed in the form:

$\begin{matrix} \left. {\max_{x}\left\{ {{\sum\limits_{ij}{R_{ij}x_{i}{q(x)}_{j}\text{:}\mspace{14mu} x}} \in {\bigcup_{j}X_{j}}} \right\}}\Leftrightarrow{\max_{x\hat{j}}\left\{ {{\sum\limits_{ij}{R_{ij}{{xq}(x)}_{j}\text{:}\mspace{14mu} x}} \in X_{\hat{j}}} \right\}}\Leftrightarrow{\max_{xj}\left\{ {{\sum\limits_{i}{R_{ij}x_{i}\text{:}\mspace{14mu} x}} \in X_{j}} \right\}} \right. & (15) \end{matrix}$

where the last equivalence comes from Equation (12).

As a result of Equations (15), we can rewrite Equation (1) as an equivalent problem:

$\begin{matrix} {{\max_{\hat{j}}{\max_{x}{\sum\limits_{i}{R_{i\hat{j}}x_{i}}}}}{s.t.\mspace{14mu} {\forall{{j{\sum\limits_{i}{c_{ij}x_{i}}}} \leq {\sum\limits_{i}{c_{i\hat{j}}x_{i}}}}}}{{\sum\limits_{i}x_{i}} = 1}{\forall{{i\; 0} \leq x_{i}}}} & (16) \end{matrix}$

As a result, the original leader-follower problem of Equation (1) can be rewritten as |J| linear programs, each with |I| variables, and |J|+|I|+1 constraints.

This approach is used in method 200. The particular embodiment of method 200 shown in FIG. 2 is described here as being implemented in the software 108 of system 100 of FIG. 1. In this embodiment, the leader-follower game comprises a defender-attacker game and the system 100 is used to output a suggested convoy schedule that indicates, for each possible path the convoy could take, a respective fraction of occasions that the convey (that is, the defender) is to choose that path.

Method 200 comprises receiving an expression of the leader-follower problem as a normal form Stackelberg game (block 202). In the particular embodiment described here in connection with FIGS. 1 and 2, a normal form Stackelberg game that models the defender-attacker problem addressed in this embodiment is received in the form of a payoff table using the front-end interface 124. A payoff table specifies the leader payoff and the follower payoff for each combination of a leader action and a follower action. In this embodiment, the payoff table that is received using the front-end interface 124 specifies the payoff to the defender and the payoff to the attacker for each combination of a convoy path and a location for an attack on the convoy.

For example, for the example leader-follower game described above in connection with Table 1, the payoff table shown in Table 1 is converted into the normal form Stackelberg game as shown above in connection with Equation (1).

Method 200 further comprises formulating a linear programming (LP) problem for each possible follower action (block 204). For each possible follower action (also referred to here as the “provoked follower action”), a respective LP problem is formulated that is to be solved by optimizing the leader payoff for a given mixed leader strategy and a given fixed follower action over a feasible region that includes only mixed leader strategies that provoke that provoked follower action. Each such LP problem is formulated by specifying an objective function that expresses the leader payoff for a given mixed leader strategy and the provoked follower action and by specifying a constraint that requires the follower payoff for a given mixed leader strategy and the provoked follower action to be greater than or equal to the follower payoff for that given mixed leader strategy and every other possible follower action.

In the particular embodiment described here in connection with FIGS. 1 and 2, the enumerated LP module 128 formulate each such LP problem from the payoff table received via the front-end interface 124. The objective function for each such LP problem is formulated as follows:

max_(x) Σ_(i)R_(iĵ)x_(i)   (17)

In other words, Equation (17) is formulated as a polynomial including a term for each leader action in a given mixed leader strategy that is the product of the leader payoff R_(iĵ) corresponding to the combination of that leader action and the provoked follower action and a variable that is the fraction x_(i) of occasions that that leader action is to occur in the given mixed leader strategy.

The constraints for each such LP problem are formulated as follows:

∀j Σ_(i)c_(ij)x_(i)≦Σ_(i)c_(iĵ)x_(i)   (18)

Σ_(i)x_(i)−1   (19)

∀i 0≦x_(i)   (20)

In other words, Equation (18) requires the follower payoff for a given mixed leader strategy and the provoked follower action to be greater than or equal to the follower payoff for that given mixed leader strategy and every other possible follower action.

Equation (19) requires the sum of all the fractions of occasions that the leader actions in the given mixed leader strategy are to occur equals 1.

Equation (20) requires that, for each leader action in a given mixed leader strategy, the fraction of occasions that that leader action is to occur is not negative.

Method 200 further comprises solving each of the set of LP problems (block 206). Because each of the set of LP problems is a polynomial LP problem, conventional LP algorithms and techniques can be used to solve such LP problems in a reasonable amount of time for real world applications.

Method 200 further comprises selecting an overall optimal mixed leader strategy from the optimal mixed leader strategies determined by solving the set of enumerated LP problems (block 208). The particular optimal mixed leader strategy that has the highest payoff to the leader is selected.

In the particular embodiment described here in connection with FIGS. 1 and 2, the enumerated LP module 128 solves each of the set of LP problems and selects the overall optimal mixed leader strategy from the set of optimal mixed leader strategies that result from solving the set of LP problems.

Method 200 further comprises generating an output derived from the optimal mixed leader strategies determined by solving the LP problems (block 210) and outputting the output by the changing a physical state associated with an interface (block 212). In the particular embodiment described here in connection with FIGS. 1 and 2, the schedule generator 130 generates a suggested convoy schedule from the front end's knowledge of the defense resources 102 and the security environment 104 combined with the optimal mixed leader strategy output by enumerated LP module 128. As noted above, the suggest convoy schedule is, for example, displayed on display device 120 and/or communicated via an appropriate interface 116 in the system 100 to a system or device within the defense resources 102 (via an interface 134 included therein).

The methods and techniques described here may be implemented in digital electronic circuitry, or with a programmable processor (for example, a special-purpose processor or a general-purpose processor such as a computer) firmware, software, or in combinations of them. Apparatus embodying these techniques may include appropriate input and output devices, a programmable processor, and a storage medium tangibly embodying program instructions for execution by the programmable processor. A process embodying these techniques may be performed by a programmable processor executing a program of instructions to perform desired functions by operating on input data and generating appropriate output. The techniques may advantageously be implemented in one or more programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. Generally, a processor will receive instructions and data from a read-only memory and/or a random access memory. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and DVD disks. Any of the foregoing may be supplemented by, or incorporated in, specially-designed application-specific integrated circuits (ASICs).

A number of embodiments of the invention defined by the following claims have been described. Nevertheless, it will be understood that various modifications to the described embodiments may be made without departing from the spirit and scope of the claimed invention. Accordingly, other embodiments are within the scope of the following claims. 

1. A method of solving a leader-follower problem in which a leader has a set of leader actions and a follower has a set of follower actions, the method comprising: receiving an expression of the leader-follower problem as a normal form Stackelberg game; for each possible follower action, solving a linear program (LP) problem to determine a respective optimal mixed leader strategy, wherein the LP problem optimizes a leader payoff for a given mixed leader strategy and a given fixed follower action over a feasible region that includes only mixed leader strategies that provoke that respective follower action; generating an output derived from the optimal mixed leader strategies; and outputting the output by changing a physical state associated with an interface.
 2. The method of claim 1, further comprising selecting an overall optimal mixed leader strategy from the optimal mixed leader strategies determined by solving the LP problems.
 3. The method of claim 1, wherein for each possible follower action, the LP problem that optimizes the leader payoff for the given mixed leader strategy and the given fixed follower action over the feasible region that includes only mixed leader strategies that provoke that respective possible follower action comprises: (i) an objective function that expresses the leader payoff for the given mixed leader strategy and the given fixed follower action; and (ii) a constraint that requires a follower payoff for a given mixed leader strategy and the respective possible follower action to be greater than or equal to a follower payoff for that given mixed leader strategy and every other possible follower action.
 4. The method of claim 1, wherein receiving the expression of the leader-follower problem as a normal form Stackelberg game comprises receiving a reward matrix that specifies the leader payoff and the follower payoff for a given leader action and a given follower action.
 5. The method of claim 1, wherein the leader-follower game comprises a defender-attacker game in which the leader comprises the defender and the follower comprises the attacker.
 6. The method of claim 1, further comprising using the output to defend at least one of an electric power grid, a subway, an airport, and a convoy.
 7. The method of claim 1, wherein each leader action comprises a convoy path that specifies a set of locations that a convoy travels and each follower action specifies a location that is attacked.
 8. The method of claim 1, wherein each mixed leader strategy comprises, for each of the set of leader actions, a respective fraction of occasions that the leader is to choose that respective leader action.
 9. A system for solving a leader-follower problem in which a leader has a set of leader actions and a follower has a set of follower actions, the system comprising: at least one programmable processor; at least one interface to receive information about the leader-follower problem; wherein the programmable processor is configured to execute software that is operable to cause the system to: receive an expression of the leader-follower problem as a normal form Stackelberg game; for each possible follower action, solve a linear program (LP) problem to determine a respective optimal mixed leader strategy, wherein the LP problem optimizes a leader payoff for a given mixed leader strategy and a given fixed follower action over a feasible region that includes only mixed leader strategies that provoke that respective follower action; generate an output derived from the optimal mixed leader strategies; and output the output by changing a physical state associated with the interface.
 10. The system of claim 9, wherein the software is operable to cause the system to select an overall optimal mixed leader strategy from the optimal mixed leader strategies determined by solving the LP problems.
 11. The system of claim 9, wherein for each possible follower action, the LP problem that optimizes the leader payoff for the given mixed leader strategy and the given fixed follower action over the feasible region that includes only mixed leader strategies that provoke that respective possible follower action comprises: (i) an objective function that expresses the leader payoff for the given mixed leader strategy and the given fixed follower action; and (ii) a constraint that requires a follower payoff for a given mixed leader strategy and the respective possible follower action to be greater than or equal to a follower payoff for that given mixed leader strategy and every other possible follower action.
 12. The system of claim 9, wherein the software is operable to cause the system receiving the expression of the leader-follower problem as a normal form Stackelberg game by receiving a reward matrix that specifies the leader payoff and the follower payoff for a given leader action and a given follower action.
 13. The system of claim 9, wherein the leader-follower game comprises a defender-attacker game in which the leader comprises the defender and the follower comprises the attacker.
 14. The system of claim 9, wherein the software comprises a front end and back end; wherein the front end comprises a front-end interface to receive a reward payoff that comprises the expression of the leader-follower problem as a normal form Stackelberg game; and wherein the back end comprises an enumerated LP module to solve the LP problem for each possible follower action.
 15. The system of claim 9, wherein the at least one interface comprises a first interface to communicatively couple the system to an input device and a second interface to communicatively couple the system to a display device, wherein the software outputs the output by the changing the physical state associated with the interface by displaying at least a portion of the output on the display device.
 16. A program product for solving a leader-follower problem in which a leader has a set of leader actions and a follower has a set of follower actions, the program-product comprising a processor-readable medium on which program instructions are embodied, wherein the program instructions are operable, when executed by at least one programmable processor included in a device, to cause the device to: receive an expression of the leader-follower problem as a normal form Stackelberg game; for each possible follower action, solve a linear program (LP) problem to determine a respective optimal mixed leader strategy, wherein the LP problem optimizes a leader payoff for a given mixed leader strategy and a given fixed follower action over a feasible region that includes only mixed leader strategies that provoke that respective follower action; generate an output derived from the optimal mixed leader strategies; and output the output by changing a physical state associated with an interface.
 17. The program product of claim 16, wherein the program instructions are further operable, when executed by at least one programmable processor included in a device, to cause the device to select an overall optimal mixed leader strategy from the optimal mixed leader strategies determined by solving the LP problems.
 18. The program product of claim 16, wherein for each possible follower action, the LP problem that optimizes the leader payoff for the given mixed leader strategy and the given fixed follower action over the feasible region that includes only mixed leader strategies that provoke that respective possible follower action comprises: (i) an objective function that expresses the leader payoff for the given mixed leader strategy and the given fixed follower action; and (ii) a constraint that requires a follower payoff for a given mixed leader strategy and the respective possible follower action to be greater than or equal to a follower payoff for that given mixed leader strategy and every other possible follower action.
 19. The program product of claim 16, wherein the program instructions are further operable, when executed by at least one programmable processor included in a device, to cause the device to receive the expression of the leader-follower problem as a normal form Stackelberg game by receiving a reward matrix that specifies the leader payoff and the follower payoff for a given leader action and a given follower action.
 20. The program product of claim 16, wherein the leader-follower game comprises a defender-attacker game in which the leader comprises the defender and the follower comprises the attacker. 